package cn.agiledata.bank.transaction.service;

import cn.agiledata.bank.common.util.Constant;
import com.vnv.infrastructure.logic.IPBAppFactory;

//GetTransaction接口的其中一个实现
public class GetTransactionImpl implements GetTransaction {
	TransactionFactory tf;

	public TransactionFactory getTransaction(String mt) {
		// 银行充值或者是银行付款给对方账户，包括网上银行和电话银行
		if (mt.equals(Constant.ACTION_TYPE_A)
				|| mt.equals(Constant.ACTION_TYPE_F)
				|| mt.equals(Constant.ACTION_TYPE_K)
				|| mt.equals(Constant.ACTION_TYPE_L)
				|| mt.equals(Constant.ACTION_TYPE_O)
				|| mt.equals(Constant.ACTION_TYPE_P)
				|| mt.equals(Constant.ACTION_TYPE_Q)
				|| mt.equals(Constant.ACTION_TYPE_X)
				|| mt.equals(Constant.ACTION_TYPE_S)) {
			tf = (TransactionFactory) IPBAppFactory
					.getObj("transactionAbundanceProxy");
		}// 提现或者账户付款给对方银行，退款
		else if (mt.equals(Constant.ACTION_TYPE_D)
				|| mt.equals(Constant.ACTION_TYPE_G)
				|| mt.equals(Constant.ACTION_TYPE_Y)
				|| mt.equals(Constant.ACTION_TYPE_R)) {
			tf = (TransactionFactory) IPBAppFactory
					.getObj("transactionGainMoneyProxy");
		}// 线下充值
		else if (mt.equals(Constant.ACTION_TYPE_B)) {
			tf = (TransactionFactory) IPBAppFactory
					.getObj("transactionDownSiteProxy");
		}// 收款付款退款/产生利息
		else if (mt.equals(Constant.ACTION_TYPE_C)
				|| mt.equals(Constant.ACTION_TYPE_H)
				|| mt.equals(Constant.ACTION_TYPE_J)) {
			tf = (TransactionFactory) IPBAppFactory
					.getObj("transactionBussinessProxy");
		} else if (mt.equals(Constant.ACTION_TYPE_I)) {
			tf = (TransactionFactory) IPBAppFactory
					.getObj("TransactionAdjustProxy");
		}
		tf.setFtd((FillTransactionDetailInterf) IPBAppFactory
				.getObj("fillTransactionDetail"));

		// TODO Auto-generated method stub
		return tf;
	}

}
